Complex event processing (CEP) is a technology for enabling the information contained in the events, flowing through various layers of the enterprise IT infrastructure, to be discovered, understood in terms of its impact on high level management goals and business processes, and acted upon in real time. CEP provides the ability to analyze high-volume and high-speed event streams. The event streams may include financial data feeds, any continuous stream of events of a similar type or the like.
A CEP system is typically used for performing CEP on the event streams/data. The CEP system receives several user queries from users for processing the event streams/data. CEP system shares many aspects with traditional database systems, including multi-query optimization. A typical multi query optimization approach involves obtaining a query plan for the queries by identifying similar sub query graphs in the received queries and reusing the result produced by the sub query graphs for determining the final query results. The CEP system then maps the query plan to physical or virtual nodes.
A drawback of using the multi-query optimization approach in the CEP system is that whenever one of these nodes crash the query located on the crashed node stops processing data. Further, due to the multi-query optimization, the query affected by the crashed node may be needed by multiple other queries. This leads to an avalanche-like propagation of the failure, where queries running on non-crashed nodes also cannot process data as they are dependent on the query located on the crashed node.